﻿using System;

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, Inherited = false, AllowMultiple = true)]
public sealed class ImplementAttribute : Attribute {

    public Type InterfaceType { get; }

    public ImplementAttribute(Type interfaceType) {
        InterfaceType = interfaceType;
    }
}

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = false, AllowMultiple = false)]
public sealed class AutowiredAttribute : Attribute {
}

[AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
public sealed class NetListenerAttribute : Attribute {
}